#ifndef FRAMEWORK_SINGLETON_H
#define FRAMEWORK_SINGLETON_H

namespace project_w_framework {

	template <typename T>
	class Singleton {
		public:
			static T& Instance();

		protected:
			Singleton() {
			}

		private:
			Singleton(const Singleton&);
			Singleton& operator=(const Singleton&);

			static void DestorySingleton();
			static T* si_singleton;
			static bool si_destoryed;
	};
}

#endif
